package com.tanger.flowable.api;

import com.tanger.common.result.ActionResult;
import org.flowable.engine.history.HistoricActivityInstance;
import org.flowable.task.api.Task;

import java.util.Collections;
import java.util.List;
import java.util.Map;

/**
 * @Description 工作流程抽象类
 * @Author Hchenbin
 * @Date 2024-01-04 11:32
 * @Version 1.0
 */
public interface FlowAbleFactory {

    /**
     * 创建/开始流程
     * @param map
     * @param flowId
     */
    String submit(Map map, String flowId);

    /**
     * 查询所有任务
     * @param roleCode 角色编码(departCode"-"roleCode)
     * @return
     */
    List<Task> findAll(String roleCode);

    /**
     * 审批
     * @param flowId 流程ID
     * @param isPass 是否通过(0.否 1.是)
     */
    ActionResult complate(String flowId, Integer isPass);

    /**
     * 获取最近的一个流程
     * @param flowId 流程ID
     */
    default List<HistoricActivityInstance> findLastAll(String flowId) {
        return Collections.emptyList();
    }
}
